/****************************** (C) COPYRIGHT 2016 Rsestudio ***********************
* File Name          : 
* Author             : Rsestudio
* Version            : V1.0.0
* Date               : 01-MAR-2024
* Description        : 
*****************************************************************************************/
/* Includes ----------------------------------------------------------------------------*/
#include "Bsp.h"
#include "device_pins.h"
// #include "ws2812.h"

/* Private define ----------------------------------------------------------------------*/
/* Private macro ----------------------------------------------------------------------*/
/* Private typedef ---------------------------------------------------------------------*/
/* Extern variables --------------------------------------------------------------------*/
uint8_t eio_out_sts;
/* Private variables --------------------------------------------------------------------*/
/* Private functions -------------------------------------------------------------------*/
uint8_t test_plug;
/*****************************************************************************************
* Function Name  : 
* Description    : 
* Input          : None
* Output         : None
* Return         : None
*****************************************************************************************/
void board_pins_init(void)
{  

    gpio_config_t gpio_init_struct = {0};
    // test_plug = 0;
    
// #if DEV_TYPE == DEV_TYPE_I7
     
    
// 	//sys power : PA4
// 	GPIO_InitStruct.Pin = GPIO_PIN_4;
//     GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
//     GPIO_InitStruct.Pull = GPIO_PULLDOWN;
//     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//     HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
//     GPIOA->BSRR |= GPIO_PIN_4;
		
// 	//wifi : PB3
// 	GPIO_InitStruct.Pin = GPIO_PIN_3;
//     GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
//     GPIO_InitStruct.Pull = GPIO_PULLDOWN;
//     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//     HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
//     WL_POWER_OFF();
    
// 	//Charge status : PA3
// 	GPIO_InitStruct.Pin = GPIO_PIN_3;
//     GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
//     GPIO_InitStruct.Pull = GPIO_PULLUP;
//     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//     HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
// 	GPIOA->BSRR= GPIO_PIN_3;
    
//   	//Bus link detect : PA5
// 	GPIO_InitStruct.Pin = GPIO_PIN_5;
//     GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
//     GPIO_InitStruct.Pull = GPIO_PULLDOWN;
//     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//     HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
// 	//GPIOA->BSRR= GPIO_PIN_5<<16;
    
// 	//IO1 : PB9
// 	GPIO_InitStruct.Pin = GPIO_PIN_9;
//     GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
//     GPIO_InitStruct.Pull = GPIO_PULLUP;
//     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//     HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
// 	GPIOB->BSRR= GPIO_PIN_9;
    
//     //IO2 : PB5
// 	GPIO_InitStruct.Pin = GPIO_PIN_5;
//     GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
//     GPIO_InitStruct.Pull = GPIO_PULLUP;
//     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//     HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
// 	GPIOB->BSRR= GPIO_PIN_5;
	
//	//OLED
//    //LCD_CS
//    gpio_init_struct.pin_bit_mask = 1ull << GPIO_NUM_17;    /* 设置的引脚的位掩码 */
//    gpio_init_struct.mode = GPIO_MODE_OUTPUT;               /* 设置输入输出模式 */
//    gpio_init_struct.pull_up_en = GPIO_PULLUP_ENABLE;       /* 设置上拉 */
//    gpio_init_struct.pull_down_en = GPIO_PULLDOWN_DISABLE;  /* 设置下拉 */
//    gpio_init_struct.intr_type = GPIO_INTR_DISABLE;         /* 设置引脚中断 */
//    ESP_ERROR_CHECK(gpio_config(&gpio_init_struct));        /* 配置GPIO */
//    gpio_set_level(GPIO_NUM_17, 1);
//
//    //LCD_CLK
//    gpio_init_struct.pin_bit_mask = 1ull << GPIO_NUM_18;    /* 设置的引脚的位掩码 */
//    gpio_init_struct.mode = GPIO_MODE_INPUT_OUTPUT_OD;      /* 设置输入输出模式 */
//    gpio_init_struct.pull_up_en = GPIO_PULLUP_ENABLE;       /* 设置上拉 */
//    gpio_init_struct.pull_down_en = GPIO_PULLDOWN_DISABLE;  /* 设置下拉 */
//    gpio_init_struct.intr_type = GPIO_INTR_DISABLE;         /* 设置引脚中断 */
//    ESP_ERROR_CHECK(gpio_config(&gpio_init_struct));        /* 配置GPIO */
//    gpio_set_level(GPIO_NUM_18, 1);
//
//    //LCD_DIN
//    gpio_init_struct.pin_bit_mask = 1ull << GPIO_NUM_19;    /* 设置的引脚的位掩码 */
//    gpio_init_struct.mode = GPIO_MODE_INPUT_OUTPUT_OD;      /* 设置输入输出模式 */
//    gpio_init_struct.pull_up_en = GPIO_PULLUP_ENABLE;       /* 设置上拉 */
//    gpio_init_struct.pull_down_en = GPIO_PULLDOWN_DISABLE;  /* 设置下拉 */
//    gpio_init_struct.intr_type = GPIO_INTR_DISABLE;         /* 设置引脚中断 */
//    ESP_ERROR_CHECK(gpio_config(&gpio_init_struct));        /* 配置GPIO */
//    gpio_set_level(GPIO_NUM_19, 1);
//
//    //LCD_DC
//    gpio_init_struct.pin_bit_mask = 1ull << GPIO_NUM_20;    /* 设置的引脚的位掩码 */
//    gpio_init_struct.mode = GPIO_MODE_OUTPUT;               /* 设置输入输出模式 */
//    gpio_init_struct.pull_up_en = GPIO_PULLUP_ENABLE;       /* 设置上拉 */
//    gpio_init_struct.pull_down_en = GPIO_PULLDOWN_DISABLE;  /* 设置下拉 */
//    gpio_init_struct.intr_type = GPIO_INTR_DISABLE;         /* 设置引脚中断 */
//    ESP_ERROR_CHECK(gpio_config(&gpio_init_struct));        /* 配置GPIO */
//    gpio_set_level(GPIO_NUM_20, 1);
//    
//    //LCD_RST
//    gpio_init_struct.pin_bit_mask = 1ull << GPIO_NUM_21;    /* 设置的引脚的位掩码 */
//    gpio_init_struct.mode = GPIO_MODE_OUTPUT;               /* 设置输入输出模式 */
//    gpio_init_struct.pull_up_en = GPIO_PULLUP_ENABLE;       /* 设置上拉 */
//    gpio_init_struct.pull_down_en = GPIO_PULLDOWN_DISABLE;  /* 设置下拉 */
//    gpio_init_struct.intr_type = GPIO_INTR_DISABLE;         /* 设置引脚中断 */
//    ESP_ERROR_CHECK(gpio_config(&gpio_init_struct));        /* 配置GPIO */
//    gpio_set_level(GPIO_NUM_21, 1);
	
    //Key1 : PB7
    gpio_init_struct.pin_bit_mask = 1ull << GPIO_NUM_33;    /* 设置的引脚的位掩码 */
    gpio_init_struct.mode = GPIO_MODE_INPUT;                /* 设置输入输出模式 */
    gpio_init_struct.pull_up_en = GPIO_PULLUP_DISABLE;      /* 设置上拉 */
    gpio_init_struct.pull_down_en = GPIO_PULLDOWN_ENABLE;   /* 设置下拉 */
    gpio_init_struct.intr_type = GPIO_INTR_DISABLE;         /* 设置引脚中断 */
    ESP_ERROR_CHECK(gpio_config(&gpio_init_struct));        /* 配置GPIO */
    gpio_set_level(GPIO_NUM_33, 1);
    //Key2:PB8
    gpio_init_struct.pin_bit_mask = 1ull << GPIO_NUM_34;    /* 设置的引脚的位掩码 */
    gpio_init_struct.mode = GPIO_MODE_INPUT;                /* 设置输入输出模式 */
    gpio_init_struct.pull_up_en = GPIO_PULLUP_DISABLE;      /* 设置上拉 */
    gpio_init_struct.pull_down_en = GPIO_PULLDOWN_ENABLE;   /* 设置下拉 */
    gpio_init_struct.intr_type = GPIO_INTR_DISABLE;         /* 设置引脚中断 */
    ESP_ERROR_CHECK(gpio_config(&gpio_init_struct));        /* 配置GPIO */
    gpio_set_level(GPIO_NUM_34, 1);
    //Key3:PB6
    gpio_init_struct.pin_bit_mask = 1ull << GPIO_NUM_35;    /* 设置的引脚的位掩码 */
    gpio_init_struct.mode = GPIO_MODE_INPUT;                /* 设置输入输出模式 */
    gpio_init_struct.pull_up_en = GPIO_PULLUP_DISABLE;      /* 设置上拉 */
    gpio_init_struct.pull_down_en = GPIO_PULLDOWN_ENABLE;   /* 设置下拉 */
    gpio_init_struct.intr_type = GPIO_INTR_DISABLE;         /* 设置引脚中断 */
    ESP_ERROR_CHECK(gpio_config(&gpio_init_struct));        /* 配置GPIO */
    gpio_set_level(GPIO_NUM_35, 1);
    	
//     //SPI - memory
//     GPIO_InitStruct.Pin = GPIO_PIN_12;
//     GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;   
//     GPIO_InitStruct.Pull = GPIO_NOPULL;
//     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
//     HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
// 	GPIOB->BSRR = GPIO_PIN_12;
    
//     GPIO_InitStruct.Pin = GPIO_PIN_13|GPIO_PIN_15;
//     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
//     GPIO_InitStruct.Pull = GPIO_NOPULL;
//     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
//     GPIO_InitStruct.Alternate = GPIO_AF5_SPI2;
//     HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
	
// 	GPIO_InitStruct.Pin = GPIO_PIN_14;
//     GPIO_InitStruct.Mode = GPIO_MODE_AF_OD;
//     GPIO_InitStruct.Pull = GPIO_PULLUP;
//     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
//     GPIO_InitStruct.Alternate = GPIO_AF5_SPI2;
//     HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
    
//     //MEAS spi  
    //cs_acc : PD2
    gpio_init_struct.pin_bit_mask = 1ull << GPIO_NUM_9;     /* 设置的引脚的位掩码 */
    gpio_init_struct.mode = GPIO_MODE_OUTPUT;               /* 设置输入输出模式 */
    gpio_init_struct.pull_up_en = GPIO_PULLUP_ENABLE;       /* 设置上拉 */
    gpio_init_struct.pull_down_en = GPIO_PULLDOWN_DISABLE;  /* 设置下拉 */
    gpio_init_struct.intr_type = GPIO_INTR_DISABLE;         /* 设置引脚中断 */
    ESP_ERROR_CHECK(gpio_config(&gpio_init_struct));        /* 配置GPIO */
    gpio_set_level(GPIO_NUM_9, 1);
	
    //cs_1 :PC11
    gpio_init_struct.pin_bit_mask = 1ull << GPIO_NUM_1;     /* 设置的引脚的位掩码 */
    gpio_init_struct.mode = GPIO_MODE_OUTPUT;               /* 设置输入输出模式 */
    gpio_init_struct.pull_up_en = GPIO_PULLUP_ENABLE;       /* 设置上拉 */
    gpio_init_struct.pull_down_en = GPIO_PULLDOWN_DISABLE;  /* 设置下拉 */
    gpio_init_struct.intr_type = GPIO_INTR_DISABLE;         /* 设置引脚中断 */
    ESP_ERROR_CHECK(gpio_config(&gpio_init_struct));        /* 配置GPIO */
    gpio_set_level(GPIO_NUM_1, 1);
	//cs_2 : PC12
    gpio_init_struct.pin_bit_mask = 1ull << GPIO_NUM_2;     /* 设置的引脚的位掩码 */ 
    gpio_init_struct.mode = GPIO_MODE_OUTPUT;               /* 设置输入输出模式 */
    gpio_init_struct.pull_up_en = GPIO_PULLUP_ENABLE;       /* 设置上拉 */
    gpio_init_struct.pull_down_en = GPIO_PULLDOWN_DISABLE;  /* 设置下拉 */
    gpio_init_struct.intr_type = GPIO_INTR_DISABLE;         /* 设置引脚中断 */
    ESP_ERROR_CHECK(gpio_config(&gpio_init_struct));        /* 配置GPIO */
    gpio_set_level(GPIO_NUM_2, 1);
	//cs_3 :PC10
    gpio_init_struct.pin_bit_mask = 1ull << GPIO_NUM_3;     /* 设置的引脚的位掩码 */ 
    gpio_init_struct.mode = GPIO_MODE_OUTPUT;               /* 设置输入输出模式 */
    gpio_init_struct.pull_up_en = GPIO_PULLUP_ENABLE;       /* 设置上拉 */
    gpio_init_struct.pull_down_en = GPIO_PULLDOWN_DISABLE;  /* 设置下拉 */
    gpio_init_struct.intr_type = GPIO_INTR_DISABLE;         /* 设置引脚中断 */
    ESP_ERROR_CHECK(gpio_config(&gpio_init_struct));        /* 配置GPIO */
    gpio_set_level(GPIO_NUM_3, 1);
	//cs_4 :PA15
    gpio_init_struct.pin_bit_mask = 1ull << GPIO_NUM_4;     /* 设置的引脚的位掩码 */ 
    gpio_init_struct.mode = GPIO_MODE_OUTPUT;               /* 设置输入输出模式 */
    gpio_init_struct.pull_up_en = GPIO_PULLUP_ENABLE;       /* 设置上拉 */
    gpio_init_struct.pull_down_en = GPIO_PULLDOWN_DISABLE;  /* 设置下拉 */
    gpio_init_struct.intr_type = GPIO_INTR_DISABLE;         /* 设置引脚中断 */
    ESP_ERROR_CHECK(gpio_config(&gpio_init_struct));        /* 配置GPIO */
    gpio_set_level(GPIO_NUM_4, 1);
    //cs_5 :PC7
    gpio_init_struct.pin_bit_mask = 1ull << GPIO_NUM_5;     /* 设置的引脚的位掩码 */ 
    gpio_init_struct.mode = GPIO_MODE_OUTPUT;               /* 设置输入输出模式 */
    gpio_init_struct.pull_up_en = GPIO_PULLUP_ENABLE;       /* 设置上拉 */
    gpio_init_struct.pull_down_en = GPIO_PULLDOWN_DISABLE;  /* 设置下拉 */
    gpio_init_struct.intr_type = GPIO_INTR_DISABLE;         /* 设置引脚中断 */
    ESP_ERROR_CHECK(gpio_config(&gpio_init_struct));        /* 配置GPIO */
    gpio_set_level(GPIO_NUM_5, 1);
    //cs_6 :PC6
    gpio_init_struct.pin_bit_mask = 1ull << GPIO_NUM_6;     /* 设置的引脚的位掩码 */ 
    gpio_init_struct.mode = GPIO_MODE_OUTPUT;               /* 设置输入输出模式 */
    gpio_init_struct.pull_up_en = GPIO_PULLUP_ENABLE;       /* 设置上拉 */
    gpio_init_struct.pull_down_en = GPIO_PULLDOWN_DISABLE;  /* 设置下拉 */
    gpio_init_struct.intr_type = GPIO_INTR_DISABLE;         /* 设置引脚中断 */
    ESP_ERROR_CHECK(gpio_config(&gpio_init_struct));        /* 配置GPIO */
    gpio_set_level(GPIO_NUM_6, 1);
    //cs_7 :PB1
    gpio_init_struct.pin_bit_mask = 1ull << GPIO_NUM_7;     /* 设置的引脚的位掩码 */ 
    gpio_init_struct.mode = GPIO_MODE_OUTPUT;               /* 设置输入输出模式 */
    gpio_init_struct.pull_up_en = GPIO_PULLUP_ENABLE;       /* 设置上拉 */
    gpio_init_struct.pull_down_en = GPIO_PULLDOWN_DISABLE;  /* 设置下拉 */
    gpio_init_struct.intr_type = GPIO_INTR_DISABLE;         /* 设置引脚中断 */
    ESP_ERROR_CHECK(gpio_config(&gpio_init_struct));        /* 配置GPIO */
    gpio_set_level(GPIO_NUM_7, 1);
    //cs_8 :PB2
    gpio_init_struct.pin_bit_mask = 1ull << GPIO_NUM_8;     /* 设置的引脚的位掩码 */ 
    gpio_init_struct.mode = GPIO_MODE_OUTPUT;               /* 设置输入输出模式 */
    gpio_init_struct.pull_up_en = GPIO_PULLUP_ENABLE;       /* 设置上拉 */
    gpio_init_struct.pull_down_en = GPIO_PULLDOWN_DISABLE;  /* 设置下拉 */
    gpio_init_struct.intr_type = GPIO_INTR_DISABLE;         /* 设置引脚中断 */
    ESP_ERROR_CHECK(gpio_config(&gpio_init_struct));        /* 配置GPIO */
    gpio_set_level(GPIO_NUM_8, 1);
    
    
    //SCLK : PA8
    gpio_init_struct.pin_bit_mask = 1ull << GPIO_NUM_14;    /* 设置的引脚的位掩码 */ 
    gpio_init_struct.mode = GPIO_MODE_OUTPUT;               /* 设置输入输出模式 */
    gpio_init_struct.pull_up_en = GPIO_PULLUP_ENABLE;       /* 设置上拉 */
    gpio_init_struct.pull_down_en = GPIO_PULLDOWN_DISABLE;  /* 设置下拉 */
    gpio_init_struct.intr_type = GPIO_INTR_DISABLE;         /* 设置引脚中断 */
    ESP_ERROR_CHECK(gpio_config(&gpio_init_struct));        /* 配置GPIO */
    gpio_set_level(GPIO_NUM_14, 1);
    //MOSI 
    gpio_init_struct.pin_bit_mask = 1ull << GPIO_NUM_15;    /* 设置的引脚的位掩码 */ 
    gpio_init_struct.mode = GPIO_MODE_OUTPUT;               /* 设置输入输出模式 */
    gpio_init_struct.pull_up_en = GPIO_PULLUP_ENABLE;       /* 设置上拉 */
    gpio_init_struct.pull_down_en = GPIO_PULLDOWN_DISABLE;  /* 设置下拉 */
    gpio_init_struct.intr_type = GPIO_INTR_DISABLE;         /* 设置引脚中断 */
    ESP_ERROR_CHECK(gpio_config(&gpio_init_struct));        /* 配置GPIO */
    gpio_set_level(GPIO_NUM_15, 1);
    //MISO 
    gpio_init_struct.pin_bit_mask = 1ull << GPIO_NUM_16;    /* 设置的引脚的位掩码 */ 
    gpio_init_struct.mode = GPIO_MODE_INPUT;                /* 设置输入输出模式 */
    gpio_init_struct.pull_up_en = GPIO_PULLUP_ENABLE;       /* 设置上拉 */
    gpio_init_struct.pull_down_en = GPIO_PULLDOWN_DISABLE;  /* 设置下拉 */
    gpio_init_struct.intr_type = GPIO_INTR_DISABLE;         /* 设置引脚中断 */
    ESP_ERROR_CHECK(gpio_config(&gpio_init_struct));        /* 配置GPIO */
    gpio_set_level(GPIO_NUM_16, 1);
    
//     //PM_I2C
// 	//PM_SDA : PA7
//     GPIO_InitStruct.Pin = GPIO_PIN_7;
//     GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_OD;
//     GPIO_InitStruct.Pull = GPIO_PULLUP;
//     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//     HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
//     GPIOA->BSRR |= GPIO_PIN_7;
//     //PM_SCL :PA6
//     GPIO_InitStruct.Pin = GPIO_PIN_6;
//     GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
//     GPIO_InitStruct.Pull = GPIO_PULLUP;
//     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//     HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
//     GPIOA->BSRR |= GPIO_PIN_6;
    
    //SEN_I2C
	//SEN_SDA : PA9
    gpio_init_struct.pin_bit_mask = 1ull << GPIO_NUM_41;    /* 设置的引脚的位掩码 */ 
    gpio_init_struct.mode = GPIO_MODE_INPUT_OUTPUT_OD;      /* 设置输入输出模式 */
    gpio_init_struct.pull_up_en = GPIO_PULLUP_ENABLE;       /* 设置上拉 */
    gpio_init_struct.pull_down_en = GPIO_PULLDOWN_DISABLE;  /* 设置下拉 */
    gpio_init_struct.intr_type = GPIO_INTR_DISABLE;         /* 设置引脚中断 */
    ESP_ERROR_CHECK(gpio_config(&gpio_init_struct));        /* 配置GPIO */
    gpio_set_level(GPIO_NUM_41, 1);
    //SEN_SCL :PA10
    gpio_init_struct.pin_bit_mask = 1ull << GPIO_NUM_4;    /* 设置的引脚的位掩码 */ 
    gpio_init_struct.mode = GPIO_MODE_INPUT_OUTPUT_OD;      /* 设置输入输出模式 */
    gpio_init_struct.pull_up_en = GPIO_PULLUP_ENABLE;       /* 设置上拉 */
    gpio_init_struct.pull_down_en = GPIO_PULLDOWN_DISABLE;  /* 设置下拉 */
    gpio_init_struct.intr_type = GPIO_INTR_DISABLE;         /* 设置引脚中断 */
    ESP_ERROR_CHECK(gpio_config(&gpio_init_struct));        /* 配置GPIO */
    gpio_set_level(GPIO_NUM_40, 1);

// #if WIFI_ENABLE == 1

//	// TX PC4
//	GPIO_InitStruct.Pin = GPIO_PIN_4;
//    GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
//    GPIO_InitStruct.Pull = GPIO_PULLUP;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//		GPIO_InitStruct.Alternate = GPIO_AF7_USART3;
//    HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
//    GPIOC->BSRR |= GPIO_PIN_4;
//    // RX PC5
//    GPIO_InitStruct.Pin = GPIO_PIN_5;
//    GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;  // 浮空输入
//    GPIO_InitStruct.Pull = GPIO_NOPULL;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//	GPIO_InitStruct.Alternate = GPIO_AF7_USART3;		
//    HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
//    GPIOC->BSRR |= GPIO_PIN_5;
//		
////		/* USRT3(wifi模块,备用引脚)外接模块无须电源 */ 
////		// TX PB10
////		GPIO_InitStruct.Pin = GPIO_PIN_10;
////    GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
////    GPIO_InitStruct.Pull = GPIO_PULLUP;
////    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
////		GPIO_InitStruct.Alternate = GPIO_AF7_USART3;
////    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
////    GPIOB->BSRR |= GPIO_PIN_10;
////    // RX PB11
////    GPIO_InitStruct.Pin = GPIO_PIN_11;
////    GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;  // 浮空输入
////    GPIO_InitStruct.Pull = GPIO_NOPULL;
////    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
////		GPIO_InitStruct.Alternate = GPIO_AF7_USART3;
////    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
////    GPIOB->BSRR |= GPIO_PIN_11;
//		
//#endif	
//
//
//#elif DEV_TYPE == DEV_TYPE_XP
//
//	//sys power : PA4
//	GPIO_InitStruct.Pin = GPIO_PIN_4;
//    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
//    GPIO_InitStruct.Pull = GPIO_PULLDOWN;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
//    GPIOA->BSRR |= GPIO_PIN_4;
//    
//    //wl power : PB3
//	GPIO_InitStruct.Pin = GPIO_PIN_3;
//    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
//    GPIO_InitStruct.Pull = GPIO_PULLDOWN;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);    
//    WL_POWER_OFF();
//    
//	//Charge status : PA3
//	GPIO_InitStruct.Pin = GPIO_PIN_3;
//    GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
//    GPIO_InitStruct.Pull = GPIO_PULLUP;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
//	GPIOA->BSRR= GPIO_PIN_3;
//    
//  	//Bus link detect : PA5
//	GPIO_InitStruct.Pin = GPIO_PIN_5;
//    GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
//    GPIO_InitStruct.Pull = GPIO_PULLDOWN;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
//	//GPIOA->BSRR= GPIO_PIN_5<<16;
//    
//	//IO1 : PB9
//	GPIO_InitStruct.Pin = GPIO_PIN_9;
//    GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
//    GPIO_InitStruct.Pull = GPIO_PULLUP;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
//	GPIOB->BSRR= GPIO_PIN_9;
//    
//    //IO2 : PB5
//	GPIO_InitStruct.Pin = GPIO_PIN_5;
//    GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
//    GPIO_InitStruct.Pull = GPIO_PULLUP;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
//	GPIOB->BSRR= GPIO_PIN_5;
//	
//	//OLED
//    //LCD_CS
//    GPIO_InitStruct.Pin = GPIO_PIN_2;
//    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
//    GPIO_InitStruct.Pull = GPIO_PULLUP;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
//    GPIOC->BSRR |= GPIO_PIN_2;
//    //LCD_CLK
//    GPIO_InitStruct.Pin = GPIO_PIN_3;
//    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
//    GPIO_InitStruct.Pull = GPIO_PULLUP;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
//    GPIOC->BSRR |= GPIO_PIN_3;
//    //LCD_DIN
//    GPIO_InitStruct.Pin = GPIO_PIN_2;
//    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
//    GPIO_InitStruct.Pull = GPIO_PULLUP;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
//    GPIOA->BSRR |= GPIO_PIN_2;
//    //LCD_DC
//    GPIO_InitStruct.Pin = GPIO_PIN_1;
//    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
//    GPIO_InitStruct.Pull = GPIO_PULLUP;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
//    GPIOA->BSRR |= GPIO_PIN_1;
//    //LCD_RST
//    GPIO_InitStruct.Pin = GPIO_PIN_0;
//    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
//    GPIO_InitStruct.Pull = GPIO_PULLUP;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
//    GPIOA->BSRR |= GPIO_PIN_0;
//	
//    //Key1 : PB7
//	GPIO_InitStruct.Pin = GPIO_PIN_7;
//    GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
//    GPIO_InitStruct.Pull = GPIO_PULLDOWN;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
//	GPIOB->BSRR= GPIO_PIN_7;
//    //Key2:PB8
//	GPIO_InitStruct.Pin = GPIO_PIN_8;
//    GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
//    GPIO_InitStruct.Pull = GPIO_PULLDOWN;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
//	GPIOB->BSRR= GPIO_PIN_8;
//    //Key3:PB6
//	GPIO_InitStruct.Pin = GPIO_PIN_6;
//    GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
//    GPIO_InitStruct.Pull = GPIO_PULLDOWN;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
//	GPIOB->BSRR= GPIO_PIN_6;
//    	
//    //SPI - memory
//    GPIO_InitStruct.Pin = GPIO_PIN_12;
//    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;   
//    GPIO_InitStruct.Pull = GPIO_NOPULL;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
//    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
//	GPIOB->BSRR = GPIO_PIN_12;
//    
//    GPIO_InitStruct.Pin = GPIO_PIN_13|GPIO_PIN_15;
//    GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
//    GPIO_InitStruct.Pull = GPIO_NOPULL;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
//    GPIO_InitStruct.Alternate = GPIO_AF5_SPI2;
//    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
//	
//	GPIO_InitStruct.Pin = GPIO_PIN_14;
//    GPIO_InitStruct.Mode = GPIO_MODE_AF_OD;
//    GPIO_InitStruct.Pull = GPIO_PULLUP;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
//    GPIO_InitStruct.Alternate = GPIO_AF5_SPI2;
//    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
//    
//    //MEAS spi
//    
//    //cs_acc : PD2
//    GPIO_InitStruct.Pin = GPIO_PIN_2;
//    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
//    GPIO_InitStruct.Pull = GPIO_PULLUP;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
//    GPIOD->BSRR |= GPIO_PIN_2;
//	
//    //cs_1 :PC11
//    GPIO_InitStruct.Pin = GPIO_PIN_11;
//    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
//    GPIO_InitStruct.Pull = GPIO_PULLUP;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
//    GPIOC->BSRR |= GPIO_PIN_11;
//	//cs_2 : PC12
//    GPIO_InitStruct.Pin = GPIO_PIN_12;
//    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
//    GPIO_InitStruct.Pull = GPIO_PULLUP;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
//    GPIOC->BSRR |= GPIO_PIN_12;
//	//cs_3 :PC10
//    GPIO_InitStruct.Pin = GPIO_PIN_10;
//    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
//    GPIO_InitStruct.Pull = GPIO_PULLUP;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
//    GPIOC->BSRR |= GPIO_PIN_10;
//	//cs_4 :PA15
//    GPIO_InitStruct.Pin = GPIO_PIN_15;
//    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
//    GPIO_InitStruct.Pull = GPIO_PULLUP;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
//    GPIOA->BSRR |= GPIO_PIN_15;
//    //cs_5 :PC7
//    GPIO_InitStruct.Pin = GPIO_PIN_7;
//    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
//    GPIO_InitStruct.Pull = GPIO_PULLUP;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
//    GPIOC->BSRR |= GPIO_PIN_7;
//    //cs_6 :PC6
//    GPIO_InitStruct.Pin = GPIO_PIN_6;
//    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
//    GPIO_InitStruct.Pull = GPIO_PULLUP;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
//    GPIOC->BSRR |= GPIO_PIN_6;
//    //cs_7 :PB1
//    GPIO_InitStruct.Pin = GPIO_PIN_1;
//    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
//    GPIO_InitStruct.Pull = GPIO_PULLUP;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
//    GPIOB->BSRR |= GPIO_PIN_1;
//    //cs_8 :PB2
//    GPIO_InitStruct.Pin = GPIO_PIN_2;
//    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
//    GPIO_InitStruct.Pull = GPIO_PULLUP;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
//    GPIOB->BSRR |= GPIO_PIN_2;
//    
//    
//	
//    //SCLK : PA8
//    GPIO_InitStruct.Pin = GPIO_PIN_8;
//    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
//    GPIO_InitStruct.Pull = GPIO_PULLUP;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
//    GPIOA->BSRR |= GPIO_PIN_8;
//    //MOSI 
//    GPIO_InitStruct.Pin = GPIO_PIN_9;
//    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
//    GPIO_InitStruct.Pull = GPIO_PULLUP;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
//    GPIOC->BSRR |= GPIO_PIN_9;
//    //MISO 
//    GPIO_InitStruct.Pin = GPIO_PIN_8;
//    GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
//    GPIO_InitStruct.Pull = GPIO_PULLUP;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
//	GPIOC->BSRR= GPIO_PIN_8;
//    
//    //PM_I2C
//	//PM_SDA : PA7
//    GPIO_InitStruct.Pin = GPIO_PIN_7;
//    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_OD;
//    GPIO_InitStruct.Pull = GPIO_PULLUP;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
//    GPIOA->BSRR |= GPIO_PIN_7;
//    //PM_SCL :PA6
//    GPIO_InitStruct.Pin = GPIO_PIN_6;
//    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
//    GPIO_InitStruct.Pull = GPIO_PULLUP;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
//    GPIOA->BSRR |= GPIO_PIN_6;
//    
//    //SEN_I2C
//	//SEN_SDA : PA9
//    GPIO_InitStruct.Pin = GPIO_PIN_9;
//    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_OD;
//    GPIO_InitStruct.Pull = GPIO_PULLUP;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
//    GPIOA->BSRR |= GPIO_PIN_9;
//    //SEN_SCL :PA10
//    GPIO_InitStruct.Pin = GPIO_PIN_10;
//    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
//    GPIO_InitStruct.Pull = GPIO_PULLUP;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
//    GPIOA->BSRR |= GPIO_PIN_10;
//
//#if WIFI_ENABLE == 1
//
//	// TX PC4
//	GPIO_InitStruct.Pin = GPIO_PIN_4;
//    GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
//    GPIO_InitStruct.Pull = GPIO_PULLUP;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//	GPIO_InitStruct.Alternate = GPIO_AF7_USART3;
//    HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
//    GPIOC->BSRR |= GPIO_PIN_4;
//    // RX PC5
//    GPIO_InitStruct.Pin = GPIO_PIN_5;
//    GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;  // 浮空输入
//    GPIO_InitStruct.Pull = GPIO_NOPULL;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//	GPIO_InitStruct.Alternate = GPIO_AF7_USART3;		
//    HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
//    GPIOC->BSRR |= GPIO_PIN_5;
//		
////		/* USRT3(wifi模块,备用引脚)外接模块无须电源 */ 
////		// TX PB10
////		GPIO_InitStruct.Pin = GPIO_PIN_10;
////    GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
////    GPIO_InitStruct.Pull = GPIO_PULLUP;
////    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
////		GPIO_InitStruct.Alternate = GPIO_AF7_USART3;
////    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
////    GPIOB->BSRR |= GPIO_PIN_10;
////    // RX PB11
////    GPIO_InitStruct.Pin = GPIO_PIN_11;
////    GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;  // 浮空输入
////    GPIO_InitStruct.Pull = GPIO_NOPULL;
////    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
////		GPIO_InitStruct.Alternate = GPIO_AF7_USART3;
////    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
////    GPIOB->BSRR |= GPIO_PIN_11;
//		
//#endif	
//
//#elif DEV_TYPE == DEV_TYPE_MINI
//
//	//sys power : PB9
//	GPIO_InitStruct.Pin = GPIO_PIN_9;
//    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
//    GPIO_InitStruct.Pull = GPIO_PULLDOWN;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
//    GPIOB->BSRR |= GPIO_PIN_9;
//    
//    //wl power : PB3
//
//    
//	//Charge status : PB8
//	GPIO_InitStruct.Pin = GPIO_PIN_8;
//    GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
//    GPIO_InitStruct.Pull = GPIO_PULLUP;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
//	GPIOB->BSRR= GPIO_PIN_8;
//    
//  	//Bus link detect : PB7
//	GPIO_InitStruct.Pin = GPIO_PIN_7;
//    GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
//    GPIO_InitStruct.Pull = GPIO_PULLDOWN;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
//	//GPIOA->BSRR= GPIO_PIN_5<<16;
//    
//	//IO1 :  
//    //IO2 : 
//	
//	//OLED / LED    PA1
//    //LCD_CS    
//    GPIO_InitStruct.Pin = GPIO_PIN_1;
//    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
//    GPIO_InitStruct.Pull = GPIO_PULLUP;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
//    GPIOA->BSRR |= GPIO_PIN_1;
//    //LCD_CLK   PA2
//    GPIO_InitStruct.Pin = GPIO_PIN_2;
//    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
//    GPIO_InitStruct.Pull = GPIO_PULLUP;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
//    GPIOA->BSRR |= GPIO_PIN_2;
//    //LCD_DIN   PA3
//    GPIO_InitStruct.Pin = GPIO_PIN_3;
//    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
//    GPIO_InitStruct.Pull = GPIO_PULLUP;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
//    GPIOA->BSRR |= GPIO_PIN_3;
//    //LCD_DC    PA4
//    GPIO_InitStruct.Pin = GPIO_PIN_4;
//    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
//    GPIO_InitStruct.Pull = GPIO_PULLUP;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
//    GPIOA->BSRR |= GPIO_PIN_4;
//    //LCD_RST
//    
//	
//    //Key1 : PA15
//	GPIO_InitStruct.Pin = GPIO_PIN_15;
//    GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
//    GPIO_InitStruct.Pull = GPIO_PULLDOWN;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
//	GPIOA->BSRR= GPIO_PIN_15;
//    //Key2: PB6
//	GPIO_InitStruct.Pin = GPIO_PIN_6;
//    GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
//    GPIO_InitStruct.Pull = GPIO_PULLDOWN;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
//	GPIOB->BSRR= GPIO_PIN_6;
//    //Key3:
//	
//    	
//    //SPI - memory
//    GPIO_InitStruct.Pin = GPIO_PIN_12;
//    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;   
//    GPIO_InitStruct.Pull = GPIO_NOPULL;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
//    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
//	GPIOB->BSRR = GPIO_PIN_12;
//    
//    GPIO_InitStruct.Pin = GPIO_PIN_13|GPIO_PIN_15;
//    GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
//    GPIO_InitStruct.Pull = GPIO_NOPULL;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
//    GPIO_InitStruct.Alternate = GPIO_AF5_SPI2;
//    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
//	
//	GPIO_InitStruct.Pin = GPIO_PIN_14;
//    GPIO_InitStruct.Mode = GPIO_MODE_AF_OD;
//    GPIO_InitStruct.Pull = GPIO_PULLUP;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
//    GPIO_InitStruct.Alternate = GPIO_AF5_SPI2;
//    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
//    
//    //MEAS spi
//    
//    //cs_acc : PA6
//    GPIO_InitStruct.Pin = GPIO_PIN_6;
//    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
//    GPIO_InitStruct.Pull = GPIO_PULLUP;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
//    GPIOA->BSRR |= GPIO_PIN_6;
//	
//    //cs_1 :    PB2
//    GPIO_InitStruct.Pin = GPIO_PIN_2;
//    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
//    GPIO_InitStruct.Pull = GPIO_PULLUP;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
//    GPIOB->BSRR |= GPIO_PIN_2;
//	//cs_2 : 
//	//cs_3 :
//	//cs_4 :
//    //cs_5 :
//    //cs_6 :
//    //cs_7 :
//    //cs_8 :
//    
//    
//	
//    //SCLK : PB1
//    GPIO_InitStruct.Pin = GPIO_PIN_1;
//    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
//    GPIO_InitStruct.Pull = GPIO_PULLUP;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
//    GPIOB->BSRR |= GPIO_PIN_1;
//    //MOSI: PB0
//    GPIO_InitStruct.Pin = GPIO_PIN_0;
//    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
//    GPIO_InitStruct.Pull = GPIO_PULLUP;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
//    GPIOB->BSRR |= GPIO_PIN_0;
//    //MISO: PA7 
//    GPIO_InitStruct.Pin = GPIO_PIN_7;
//    GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
//    GPIO_InitStruct.Pull = GPIO_PULLUP;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
//	GPIOA->BSRR= GPIO_PIN_7;
//    
//    //PM_I2C
//	//PM_SDA : PB3
//    GPIO_InitStruct.Pin = GPIO_PIN_3;
//    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_OD;
//    GPIO_InitStruct.Pull = GPIO_PULLUP;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
//    GPIOB->BSRR |= GPIO_PIN_3;
//    //PM_SCL :PB4
//    GPIO_InitStruct.Pin = GPIO_PIN_4;
//    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
//    GPIO_InitStruct.Pull = GPIO_PULLUP;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
//    GPIOB->BSRR |= GPIO_PIN_4;
//    
//    //SEN_I2C
//	//SEN_SDA : 
//    //SEN_SCL :
//    
//    //SEN_1W
//    //DQ:   PA5
//    GPIO_InitStruct.Pin = GPIO_PIN_5;
//    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_OD;
//    GPIO_InitStruct.Pull = GPIO_PULLUP;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
//    GPIOA->BSRR |= GPIO_PIN_5;
//    
//	
//#elif DEV_TYPE == DEV_TYPE_VACUUM
//
//	//sys power : PA4
//	GPIO_InitStruct.Pin = GPIO_PIN_4;
//    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
//    GPIO_InitStruct.Pull = GPIO_PULLDOWN;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
//    GPIOA->BSRR |= GPIO_PIN_4;
//    
//    //wl power : PB3
//	GPIO_InitStruct.Pin = GPIO_PIN_3;
//    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
//    GPIO_InitStruct.Pull = GPIO_PULLDOWN;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
//    GPIOB->BRR |= GPIO_PIN_3;
//    
//	//Charge status : PA3
//	GPIO_InitStruct.Pin = GPIO_PIN_3;
//    GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
//    GPIO_InitStruct.Pull = GPIO_PULLUP;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
//	GPIOA->BSRR= GPIO_PIN_3;
//    
//  	//Bus link detect : PA5
//	GPIO_InitStruct.Pin = GPIO_PIN_5;
//    GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
//    GPIO_InitStruct.Pull = GPIO_PULLDOWN;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
//	//GPIOA->BSRR= GPIO_PIN_5<<16;
//    
////	//IO1 : PB9
////	GPIO_InitStruct.Pin = GPIO_PIN_9;
////    GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
////    GPIO_InitStruct.Pull = GPIO_PULLUP;
////    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
////    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
////	GPIOB->BSRR= GPIO_PIN_9;
//    
////    //IO2 : PB5
////	GPIO_InitStruct.Pin = GPIO_PIN_5;
////    GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
////    GPIO_InitStruct.Pull = GPIO_PULLUP;
////    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
////    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
////	GPIOB->BSRR= GPIO_PIN_5;
//	
//	//OLED
//    //LCD_CS
//    GPIO_InitStruct.Pin = GPIO_PIN_2;
//    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
//    GPIO_InitStruct.Pull = GPIO_PULLUP;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
//    GPIOC->BSRR |= GPIO_PIN_2;
//    //LCD_CLK
//    GPIO_InitStruct.Pin = GPIO_PIN_3;
//    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
//    GPIO_InitStruct.Pull = GPIO_PULLUP;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
//    GPIOC->BSRR |= GPIO_PIN_3;
//    //LCD_DIN
//    GPIO_InitStruct.Pin = GPIO_PIN_2;
//    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
//    GPIO_InitStruct.Pull = GPIO_PULLUP;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
//    GPIOA->BSRR |= GPIO_PIN_2;
//    //LCD_DC
//    GPIO_InitStruct.Pin = GPIO_PIN_1;
//    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
//    GPIO_InitStruct.Pull = GPIO_PULLUP;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
//    GPIOA->BSRR |= GPIO_PIN_1;
//    //LCD_RST
//    GPIO_InitStruct.Pin = GPIO_PIN_0;
//    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
//    GPIO_InitStruct.Pull = GPIO_PULLUP;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
//    GPIOA->BSRR |= GPIO_PIN_0;
//	
//    //Key1 : PB8
//	GPIO_InitStruct.Pin = GPIO_PIN_8;
//    GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
//    GPIO_InitStruct.Pull = GPIO_PULLDOWN;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
//	GPIOB->BSRR= GPIO_PIN_8;
//    //Key2:PB7
//	GPIO_InitStruct.Pin = GPIO_PIN_7;
//    GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
//    GPIO_InitStruct.Pull = GPIO_PULLDOWN;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
//	GPIOB->BSRR= GPIO_PIN_7;
//    
////    //Key3:PB6
////	GPIO_InitStruct.Pin = GPIO_PIN_6;
////    GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
////    GPIO_InitStruct.Pull = GPIO_PULLDOWN;
////    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
////    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
////	GPIOB->BSRR= GPIO_PIN_6;
//    	
//    //SPI - memory
//    GPIO_InitStruct.Pin = GPIO_PIN_12;
//    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;   
//    GPIO_InitStruct.Pull = GPIO_NOPULL;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
//    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
//	GPIOB->BSRR = GPIO_PIN_12;
//    
//    GPIO_InitStruct.Pin = GPIO_PIN_13|GPIO_PIN_15;
//    GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
//    GPIO_InitStruct.Pull = GPIO_NOPULL;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
//    GPIO_InitStruct.Alternate = GPIO_AF5_SPI2;
//    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
//	
//	GPIO_InitStruct.Pin = GPIO_PIN_14;
//    GPIO_InitStruct.Mode = GPIO_MODE_AF_OD;
//    GPIO_InitStruct.Pull = GPIO_PULLUP;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
//    GPIO_InitStruct.Alternate = GPIO_AF5_SPI2;
//    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
//    
//    //MEAS spi
//    
//    //cs_acc : PD2
//    GPIO_InitStruct.Pin = GPIO_PIN_2;
//    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
//    GPIO_InitStruct.Pull = GPIO_PULLUP;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
//    GPIOD->BSRR |= GPIO_PIN_2;
//	
//    //cs_1 :PC12
//    GPIO_InitStruct.Pin = GPIO_PIN_12;
//    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
//    GPIO_InitStruct.Pull = GPIO_PULLUP;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
//    GPIOC->BSRR |= GPIO_PIN_12;
//	//cs_2 : PA15
//    GPIO_InitStruct.Pin = GPIO_PIN_15;
//    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
//    GPIO_InitStruct.Pull = GPIO_PULLUP;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
//    GPIOA->BSRR |= GPIO_PIN_15;
//	//cs_3 :PC6
//    GPIO_InitStruct.Pin = GPIO_PIN_6;
//    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
//    GPIO_InitStruct.Pull = GPIO_PULLUP;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
//    GPIOC->BSRR |= GPIO_PIN_6;
//	//cs_4 :PB2
//    GPIO_InitStruct.Pin = GPIO_PIN_2;
//    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
//    GPIO_InitStruct.Pull = GPIO_PULLUP;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
//    GPIOB->BSRR |= GPIO_PIN_2;
//    
//    //cs_5 :
//   
//    //cs_6 :
//    
//    //cs_7 :
//    
//    //cs_8 :
//      
//    
//	
//    //SCLK : PA8
//    GPIO_InitStruct.Pin = GPIO_PIN_8;
//    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
//    GPIO_InitStruct.Pull = GPIO_PULLUP;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
//    GPIOA->BSRR |= GPIO_PIN_8;
//    //MOSI  PC9
//    GPIO_InitStruct.Pin = GPIO_PIN_9;
//    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
//    GPIO_InitStruct.Pull = GPIO_PULLUP;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
//    GPIOC->BSRR |= GPIO_PIN_9;
//    //MISO 
//    GPIO_InitStruct.Pin = GPIO_PIN_8;
//    GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
//    GPIO_InitStruct.Pull = GPIO_PULLUP;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
//	GPIOC->BSRR= GPIO_PIN_8;
//    
//    //PM_I2C
//	//PM_SDA : PA7
//    GPIO_InitStruct.Pin = GPIO_PIN_7;
//    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_OD;
//    GPIO_InitStruct.Pull = GPIO_PULLUP;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
//    GPIOA->BSRR |= GPIO_PIN_7;
//    //PM_SCL :PA6
//    GPIO_InitStruct.Pin = GPIO_PIN_6;
//    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
//    GPIO_InitStruct.Pull = GPIO_PULLUP;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
//    GPIOA->BSRR |= GPIO_PIN_6;
//    
//    //SEN_I2C
//	//SEN_SDA : PA9
//    GPIO_InitStruct.Pin = GPIO_PIN_9;
//    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_OD;
//    GPIO_InitStruct.Pull = GPIO_PULLUP;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
//    GPIOA->BSRR |= GPIO_PIN_9;
//    //SEN_SCL :PA10
//    GPIO_InitStruct.Pin = GPIO_PIN_10;
//    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
//    GPIO_InitStruct.Pull = GPIO_PULLUP;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
//    GPIOA->BSRR |= GPIO_PIN_10;
//    
//    //PRS_SCL :PB0
//    GPIO_InitStruct.Pin = GPIO_PIN_0;
//    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
//    GPIO_InitStruct.Pull = GPIO_PULLUP;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
//    GPIOB->BSRR |= GPIO_PIN_0;
//    
//    //LED
//    //LED_1_G :PB9
//    GPIO_InitStruct.Pin = GPIO_PIN_9;
//    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
//    GPIO_InitStruct.Pull = GPIO_PULLUP;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
//    GPIOB->BSRR |= GPIO_PIN_9;
//    
//    //LED_1_R :PB5
//    GPIO_InitStruct.Pin = GPIO_PIN_5;
//    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
//    GPIO_InitStruct.Pull = GPIO_PULLUP;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
//    GPIOB->BSRR |= GPIO_PIN_5;
//    
//    //LED_2_R :PB6
//    GPIO_InitStruct.Pin = GPIO_PIN_6;
//    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
//    GPIO_InitStruct.Pull = GPIO_PULLUP;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
//    GPIOB->BSRR |= GPIO_PIN_6;
//    
//    //LED_2_G :PC7
//    GPIO_InitStruct.Pin = GPIO_PIN_7;
//    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
//    GPIO_InitStruct.Pull = GPIO_PULLUP;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
//    GPIOC->BSRR |= GPIO_PIN_7;
//    
//    
//#elif DEV_TYPE == DEV_TYPE_OXYGEN_STD
//
//
//      
//	//sys power : PA10
//	GPIO_InitStruct.Pin = GPIO_PIN_10;
//    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
//    GPIO_InitStruct.Pull = GPIO_PULLDOWN;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
//    GPIOA->BSRR |= GPIO_PIN_10;
//    
//    //wifi power : PA9
//	GPIO_InitStruct.Pin = GPIO_PIN_9;
//    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
//    GPIO_InitStruct.Pull = GPIO_PULLDOWN;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
//    WL_POWER_OFF();
//    
//	//Charge status : PC6
//	GPIO_InitStruct.Pin = GPIO_PIN_6;
//    GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
//    GPIO_InitStruct.Pull = GPIO_PULLUP;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
//	GPIOC->BSRR= GPIO_PIN_6;
//    
//  	//Bus link detect : PC7
//	GPIO_InitStruct.Pin = GPIO_PIN_7;
//    GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
//    GPIO_InitStruct.Pull = GPIO_PULLDOWN;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
//	
//	
//	//OLED
//    //LCD_CS PC11
//    GPIO_InitStruct.Pin = GPIO_PIN_11;
//    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
//    GPIO_InitStruct.Pull = GPIO_PULLUP;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
//    GPIOC->BSRR |= GPIO_PIN_11;
//    
//    //LCD_CLK PC10
//    GPIO_InitStruct.Pin = GPIO_PIN_10;
//    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
//    GPIO_InitStruct.Pull = GPIO_PULLUP;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
//    GPIOC->BSRR |= GPIO_PIN_10;
//    
//    //LCD_DIN PC12
//    GPIO_InitStruct.Pin = GPIO_PIN_12;
//    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
//    GPIO_InitStruct.Pull = GPIO_PULLUP;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
//    GPIOC->BSRR |= GPIO_PIN_12;
//    
//    //LCD_DC PB3
//    GPIO_InitStruct.Pin = GPIO_PIN_3;
//    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
//    GPIO_InitStruct.Pull = GPIO_PULLUP;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
//    GPIOB->BSRR |= GPIO_PIN_3;
//    
//    //LCD_RST PA15
////    GPIO_InitStruct.Pin = GPIO_PIN_15;
////    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
////    GPIO_InitStruct.Pull = GPIO_PULLUP;
////    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
////    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
////    GPIOA->BSRR |= GPIO_PIN_15;
//	
//    //Key1 : PB2
//	GPIO_InitStruct.Pin = GPIO_PIN_2;
//    GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
//    GPIO_InitStruct.Pull = GPIO_PULLDOWN;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
//	GPIOB->BSRR= GPIO_PIN_2;
//    
//    //Key2:PC9
//	GPIO_InitStruct.Pin = GPIO_PIN_9;
//    GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
//    GPIO_InitStruct.Pull = GPIO_PULLDOWN;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
//	GPIOC->BSRR= GPIO_PIN_9;
//    
//    //Key3:
//    	
//    //SPI - memory
//    //CS PB12
//    GPIO_InitStruct.Pin = GPIO_PIN_12;
//    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;   
//    GPIO_InitStruct.Pull = GPIO_NOPULL;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
//    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
//	GPIOB->BSRR = GPIO_PIN_12;
//    
//    //PB13 PB14 PB15
//    GPIO_InitStruct.Pin = GPIO_PIN_13|GPIO_PIN_15;
//    GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
//    GPIO_InitStruct.Pull = GPIO_NOPULL;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
//    GPIO_InitStruct.Alternate = GPIO_AF5_SPI2;
//    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
//	
//	GPIO_InitStruct.Pin = GPIO_PIN_14;
//    GPIO_InitStruct.Mode = GPIO_MODE_AF_OD;
//    GPIO_InitStruct.Pull = GPIO_PULLUP;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
//    GPIO_InitStruct.Alternate = GPIO_AF5_SPI2;
//    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
//    
//    //MEAS spi
//    
//    //cs_acc : PC3
//    GPIO_InitStruct.Pin = GPIO_PIN_3;
//    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
//    GPIO_InitStruct.Pull = GPIO_PULLUP;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
//    GPIOC->BSRR |= GPIO_PIN_3;
//	
//    //cs_1 :PA6
//    GPIO_InitStruct.Pin = GPIO_PIN_6;
//    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
//    GPIO_InitStruct.Pull = GPIO_PULLUP;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
//    GPIOA->BSRR |= GPIO_PIN_6;
//    
//	//cs_2 :PA7
//    GPIO_InitStruct.Pin = GPIO_PIN_7;
//    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
//    GPIO_InitStruct.Pull = GPIO_PULLUP;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
//    GPIOA->BSRR |= GPIO_PIN_7;
//    
//	//cs_3 :PC5
//    GPIO_InitStruct.Pin = GPIO_PIN_5;
//    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
//    GPIO_InitStruct.Pull = GPIO_PULLUP;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
//    GPIOC->BSRR |= GPIO_PIN_5;
//    
//	//cs_4 :
//    //cs_5 :
//    //cs_6 :
//    //cs_7 :
//    //cs_8 :   
//    
//	
//    //SCLK : PA0
//    GPIO_InitStruct.Pin = GPIO_PIN_0;
//    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
//    GPIO_InitStruct.Pull = GPIO_PULLUP;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
//    GPIOA->BSRR |= GPIO_PIN_0;
//    
//    //MOSI PA1
//    GPIO_InitStruct.Pin = GPIO_PIN_1;
//    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
//    GPIO_InitStruct.Pull = GPIO_PULLUP;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
//    GPIOA->BSRR |= GPIO_PIN_1;
//    
//    //MISO PA5
//    GPIO_InitStruct.Pin = GPIO_PIN_5;
//    GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
//    GPIO_InitStruct.Pull = GPIO_PULLUP;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
//	GPIOA->BSRR= GPIO_PIN_5;
//    
//    //PM_I2C
//	//PM_SDA : PB1
//    GPIO_InitStruct.Pin = GPIO_PIN_1;
//    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_OD;
//    GPIO_InitStruct.Pull = GPIO_PULLUP;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
//    GPIOB->BSRR |= GPIO_PIN_1;
//    
//    //PM_SCL :PB0
//    GPIO_InitStruct.Pin = GPIO_PIN_0;
//    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
//    GPIO_InitStruct.Pull = GPIO_PULLUP;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
//    GPIOB->BSRR |= GPIO_PIN_0;
//    
//    //SENSOR_BIAS_SW PC8
//    GPIO_InitStruct.Pin = GPIO_PIN_8;
//    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
//    GPIO_InitStruct.Pull = GPIO_PULLUP;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
//    GPIOC->BSRR |= GPIO_PIN_8;
//    
//    //SENSOR ADC CS PA4
//    GPIO_InitStruct.Pin = GPIO_PIN_4;
//    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
//    GPIO_InitStruct.Pull = GPIO_PULLUP;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
//    GPIOA->BSRR |= GPIO_PIN_4;
//    
//    //PUMP CTL PB9
//    GPIO_InitStruct.Pin = GPIO_PIN_9;
//    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
//    GPIO_InitStruct.Pull = GPIO_PULLUP;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
//    GPIOB->BSRR |= GPIO_PIN_9<<16;
//    
//    //SEN_I2C
//	//SEN_SDA : PB6
//    GPIO_InitStruct.Pin = GPIO_PIN_6;
//    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_OD;
//    GPIO_InitStruct.Pull = GPIO_PULLUP;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
//    GPIOB->BSRR |= GPIO_PIN_6;
//    
//    //SEN_SCL :PB7
//    GPIO_InitStruct.Pin = GPIO_PIN_7;
//    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
//    GPIO_InitStruct.Pull = GPIO_PULLUP;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
//    GPIOB->BSRR |= GPIO_PIN_7;
//    
//    
//    ws2812_port_init();
//  
//#elif DEV_TYPE == DEV_TYPE_RPT_STD  
//
//
//    //sys power : PA4
//	GPIO_InitStruct.Pin = GPIO_PIN_4;
//    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
//    GPIO_InitStruct.Pull = GPIO_PULLDOWN;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
//    GPIOA->BSRR |= GPIO_PIN_4;
//    
//	//Charge status : PA3
//	GPIO_InitStruct.Pin = GPIO_PIN_3;
//    GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
//    GPIO_InitStruct.Pull = GPIO_PULLUP;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
//	GPIOA->BSRR= GPIO_PIN_3;
//    
//  	//Bus link detect : PA5
//	GPIO_InitStruct.Pin = GPIO_PIN_5;
//    GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
//    GPIO_InitStruct.Pull = GPIO_PULLDOWN;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
//	//GPIOA->BSRR= GPIO_PIN_5<<16;
//    
//	//IO1 : PB9
//	GPIO_InitStruct.Pin = GPIO_PIN_9;
//    GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
//    GPIO_InitStruct.Pull = GPIO_PULLUP;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
//	GPIOB->BSRR= GPIO_PIN_9;
//    
//    //IO2 : PB5
//	GPIO_InitStruct.Pin = GPIO_PIN_5;
//    GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
//    GPIO_InitStruct.Pull = GPIO_PULLUP;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
//	GPIOB->BSRR= GPIO_PIN_5;
//	
//	//OLED
//    //LCD_CS PC2
//    GPIO_InitStruct.Pin = GPIO_PIN_2;
//    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
//    GPIO_InitStruct.Pull = GPIO_PULLUP;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
//    GPIOC->BSRR |= GPIO_PIN_2;
//    //LCD_CLK PC3
//    GPIO_InitStruct.Pin = GPIO_PIN_3;
//    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
//    GPIO_InitStruct.Pull = GPIO_PULLUP;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
//    GPIOC->BSRR |= GPIO_PIN_3;
//    //LCD_DIN PA2
//    GPIO_InitStruct.Pin = GPIO_PIN_2;
//    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
//    GPIO_InitStruct.Pull = GPIO_PULLUP;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
//    GPIOA->BSRR |= GPIO_PIN_2;
//    //LCD_DC PA1
//    GPIO_InitStruct.Pin = GPIO_PIN_1;
//    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
//    GPIO_InitStruct.Pull = GPIO_PULLUP;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
//    GPIOA->BSRR |= GPIO_PIN_1;
//    //LCD_RST PA0
//    GPIO_InitStruct.Pin = GPIO_PIN_0;
//    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
//    GPIO_InitStruct.Pull = GPIO_PULLUP;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
//    GPIOA->BSRR |= GPIO_PIN_0;
//	
//    //Key1 : PB7
//	GPIO_InitStruct.Pin = GPIO_PIN_7;
//    GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
//    GPIO_InitStruct.Pull = GPIO_PULLDOWN;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
//	GPIOB->BSRR= GPIO_PIN_7;
//    //Key2:PB8
//	GPIO_InitStruct.Pin = GPIO_PIN_8;
//    GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
//    GPIO_InitStruct.Pull = GPIO_PULLDOWN;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
//	GPIOB->BSRR= GPIO_PIN_8;
//    //Key3:PB6
//	GPIO_InitStruct.Pin = GPIO_PIN_6;
//    GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
//    GPIO_InitStruct.Pull = GPIO_PULLDOWN;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
//	GPIOB->BSRR= GPIO_PIN_6;
//    	
//    //SPI - memory CS PA12
//    GPIO_InitStruct.Pin = GPIO_PIN_12;
//    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;   
//    GPIO_InitStruct.Pull = GPIO_NOPULL;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
//    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
//	GPIOB->BSRR = GPIO_PIN_12;
//    
//    GPIO_InitStruct.Pin = GPIO_PIN_13|GPIO_PIN_15;
//    GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
//    GPIO_InitStruct.Pull = GPIO_NOPULL;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
//    GPIO_InitStruct.Alternate = GPIO_AF5_SPI2;
//    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
//	
//	GPIO_InitStruct.Pin = GPIO_PIN_14;
//    GPIO_InitStruct.Mode = GPIO_MODE_AF_OD;
//    GPIO_InitStruct.Pull = GPIO_PULLUP;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
//    GPIO_InitStruct.Alternate = GPIO_AF5_SPI2;
//    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
//    
//    //MEAS spi
//    
//    //cs_acc : PD2
//    GPIO_InitStruct.Pin = GPIO_PIN_2;
//    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
//    GPIO_InitStruct.Pull = GPIO_PULLUP;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
//    GPIOD->BSRR |= GPIO_PIN_2;
//	
//    //cs_1 :PB2
//    GPIO_InitStruct.Pin = GPIO_PIN_2;
//    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
//    GPIO_InitStruct.Pull = GPIO_PULLUP;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
//    GPIOB->BSRR |= GPIO_PIN_2;
//	//cs_2 : PB1
//    GPIO_InitStruct.Pin = GPIO_PIN_1;
//    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
//    GPIO_InitStruct.Pull = GPIO_PULLUP;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
//    GPIOB->BSRR |= GPIO_PIN_1;
//    
//	//cs_3 :
//    
//	//cs_4 :
//    
//    //cs_5 :
//   
//    //cs_6 :
//   
//    //cs_7 :
//    
//    //cs_8 :
//   
//    
//    
//	
//    //SCLK : PC7
//    GPIO_InitStruct.Pin = GPIO_PIN_7;
//    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
//    GPIO_InitStruct.Pull = GPIO_PULLUP;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
//    GPIOC->BSRR |= GPIO_PIN_7;
//    //MOSI  PC9
//    GPIO_InitStruct.Pin = GPIO_PIN_9;
//    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
//    GPIO_InitStruct.Pull = GPIO_PULLUP;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
//    GPIOC->BSRR |= GPIO_PIN_9;
//    //MISO PC8
//    GPIO_InitStruct.Pin = GPIO_PIN_8;
//    GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
//    GPIO_InitStruct.Pull = GPIO_PULLUP;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
//	GPIOC->BSRR= GPIO_PIN_8;
//    
//    //PM_I2C
//	//PM_SDA : PA7
//    GPIO_InitStruct.Pin = GPIO_PIN_7;
//    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_OD;
//    GPIO_InitStruct.Pull = GPIO_PULLUP;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
//    GPIOA->BSRR |= GPIO_PIN_7;
//    //PM_SCL :PA6
//    GPIO_InitStruct.Pin = GPIO_PIN_6;
//    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
//    GPIO_InitStruct.Pull = GPIO_PULLUP;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
//    GPIOA->BSRR |= GPIO_PIN_6;
//    
//    //SEN_I2C
//	//SEN_SDA : PA9
//    
//    //SEN_SCL :PA10
//    
//    
//    //EMC_CS : PA8
//    GPIO_InitStruct.Pin = GPIO_PIN_8;
//    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
//    GPIO_InitStruct.Pull = GPIO_PULLUP;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
//    GPIOA->BSRR |= GPIO_PIN_8;
//    //ENC_CLK  PA9
//    GPIO_InitStruct.Pin = GPIO_PIN_9;
//    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
//    GPIO_InitStruct.Pull = GPIO_PULLUP;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
//    GPIOA->BSRR |= GPIO_PIN_9;
//    //ENC_DO PA10
//    GPIO_InitStruct.Pin = GPIO_PIN_10;
//    GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
//    GPIO_InitStruct.Pull = GPIO_PULLUP;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
//    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
//	GPIOA->BSRR= GPIO_PIN_10;
//    
//#else
//#error
//#endif
}



/**********************************(C)COPYRIGHT 2016 Rsestudio ************************/
/*****************************************END OF FILE**********************************/

